/*
 * @Author: lineCode 1145938682@qq.com
 * @Date: 2025-08-28 22:42:19
 * @LastEditors: lineCode 1145938682@qq.com
 * @LastEditTime: 2025-11-09 22:20:09
 * @FilePath: /shorthand-go/cmd/generate/cn_model.go
 */
package main

import (
	"time"
)

// CourseCNContent 汉字集束内容表模型
type CourseCNContent struct {
	ID           int64  `gorm:"id"`            // 主键
	CourseCode   string `gorm:"course_code"`   // 课程code
	GroupID      int64  `gorm:"group_id"`      // 集束id
	GroupFlag    string `gorm:"group_flag"`    // 集束标记
	CNWord       string `gorm:"cn_word"`       // 汉字或句子
	CNPinyin     string `gorm:"cn_pinyin"`     // 汉字拼音
	CNParaphrase string `gorm:"cn_paraphrase"` // 汉字释义
	DelFlag      string `gorm:"del_flag"`      // 删除标志
	UnitNum      int    `gorm:"-"`             // 单元号（从sys_unit表关联获取）
}

// TableName 设置表名
func (CourseCNContent) TableName() string {
	return "course_cn_content"
}

// CNQuestion 中文词汇练习题表模型
type CNQuestion struct {
	ID            int64     `gorm:"id"`             // 主键
	UnitNum       int       `gorm:"unit_num"`       // 单元号
	CourseCode    string    `gorm:"course_code"`    // 课程code
	GroupID       int64     `gorm:"group_id"`       // 集束组id
	GroupFlag     string    `gorm:"group_flag"`     // 集束标记
	OptionType    int8      `gorm:"option_type"`    // 题目类型：0单选
	QuestionType  int8      `gorm:"question_type"`  // 问题类型：0.造句，1.看字选释义，2.看释义选字
	QuestionTitle string    `gorm:"question_title"` // 汉字或句子
	CreateTime    time.Time `gorm:"create_time"`    // 创建时间
	CreateBy      string    `gorm:"create_by"`      // 创建人
	DelFlag       string    `gorm:"del_flag"`       // 删除标志
}

// TableName 设置表名
func (CNQuestion) TableName() string {
	return "cn_course_question"
}

// CNQuestionOption 中文词汇练习题选项表模型
type CNQuestionOption struct {
	ID          int64     `gorm:"id"`           // 主键
	QuestionID  int64     `gorm:"question_id"`  // 问题id
	OptionValue string    `gorm:"option_value"` // 选项值
	RightOption int8      `gorm:"right_option"` // 是否正确答案：0否，1是
	CreateTime  time.Time `gorm:"create_time"`  // 创建时间
	CreateBy    string    `gorm:"create_by"`    // 创建人
	CourseCode  string    `gorm:"course_code"`  // 课程code
	Field1      string    `gorm:"field1"`       // 扩展字段：拼音
}

// TableName 设置表名
func (CNQuestionOption) TableName() string {
	return "cn_question_option"
}

// SysUnit 单元集束表模型
type SysUnit struct {
	ID         int    `gorm:"id"`          // 主键
	UnitNum    int    `gorm:"unit_num"`    // 单元编号
	GroupID    int64  `gorm:"group_id"`    // 集束id
	CourseCode string `gorm:"course_code"` // 课程code
	DelFlag    string `gorm:"del_flag"`    // 删除标志
}

// TableName 设置表名
func (SysUnit) TableName() string {
	return "sys_unit"
}

// QuestionGroup 题目组，用于批量生成练习题
type QuestionGroup struct {
	CourseCode string
	GroupID    int64
	UnitNum    int
	Contents   []CourseCNContent
}
